"""
邢不行™️ 策略分享会
仓位管理实盘框架

版权所有 ©️ 邢不行
微信: xbx6660

本代码仅供个人学习使用，未经授权不得复制、修改或用于商业用途。

Author: 邢不行
"""


def signal(*args):
    df = args[0]
    n = args[1]
    factor_name = args[2]

    # ===== 计算指标
    df['ma'] = df['close'].rolling(n, min_periods=1).mean()
    df['bias'] = df['close'] / df['ma']
    df[factor_name] = df['bias'].rolling(n, min_periods=1).mean()

    # 清理临时列
    df.drop(columns=['ma', 'bias'], inplace=True)

    return df
